The present invention is related to video, and in particular to a system and method to synchronize received video transport streams that were sent via separate paths as redundant video transport streams encapsulated in IP/UDP packets.
With the advent of fast IP-based networks, there has been a move in recent years to delivering broadcast video information over IP. Many current Video over IP deployments are based on delivering broadcast video over multicast via IP/UDP with the video in compressed form, e.g., MPEG-2, and packetized using standard Transport Stream (TS) format into TS packets. Often more than one video stream is sent in order to provide a level of redundancy to increase reliability. Thus, two or more streams are sent over a network, e.g., via different network paths to a network edge device. The redundant streams are received at the network edge device, and passed further down the distribution path, eventually to an end user's set-top box (STB).
FIG. 1 shows a simple network 100 that will be used herein to illustrate aspects of the invention. For purposes of illustration, a source, e.g., a broadcast feed sits at one end of a network, e.g., at a headend. In this example, the feed feeds two streams—a first stream 105 shown by black arrows, and a second stream 107 shown in outline arrows. These also are called the primary and secondary streams, respectively. The distribution network 103 accepts the streams at a distribution router 111 (Router 1), which is in this example the core router or switch that generally sits at the headend site and serves to deliver all the backend traffic to the main distribution network 103. It is assumed that the distribution router 111 has multicast routing capability. Several routers 111, 113, 115, and 117 are shown in FIG. 1. Router 113 (Router 2) is an intermediate router, and there may be several such routers. The delivery end(s) of the network is/are called aggregation point(s), and two such aggregation points are shown in FIG. 1, as a first aggregation router 115 (Router 3) and a second aggregation router 117 (Router 4). The links connecting the distribution router 111 to the aggregation routers 115, 117 are assumed to support the speed and number of channels for distributing the streams from the source 103.
The aggregation routers are edge devices that connect to the paths that deliver streams to individual subscribers. In the examples shown, the subscribers receive signals at set-top boxes (STBs) via DSL, and, for example, the aggregation router 115 connects to a DSL access multiplexer (DSLAM) device 121 that connects to a first set of STBs, including an STB 123, while the aggregation router 117 connects to a DSLAM 125 that connects to a second set of STBs, including an STB 127.
While DSL is assumed herein, other distribution methods, e.g., by cable via QAMs, fiber in xPON, or other delivery mechanisms may be used to deliver the stream(s) to the subscribers.
FIG. 1 is highly simplified, and many details are left out of the network 100, such as residential gateways, satellite links, various servers, the hierarchy of headends that often exists, and so forth, in order not to detract form the inventive aspects described herein.
The STB is the direct interface to each subscriber, as shown by television monitors coupled to each STB.
Thus, in order to increase reliability, two or more streams, e.g., first and second streams 105, 107 are sent via the distribution network 103. The two streams are received at a network edge device, e.g., device 119 that in one embodiment is part of the aggregation router 115, and a single stream 109 is produced from the redundant streams 105, 107 and streamed from the network edge device 119. For the redundancy to be useful in dealing with packet loss and other errors in the stream(s), there is a need to be able to accurately synchronize the two or more video streams at the network edge device 119. By synchronizing is meant the ability to know which received packet or packets correspond in the two or more redundant streams.
UDP is often used for media transport because UDP requires little overhead. UDP, however, does not have support for packet sequencing information. Thus, when delivering multiple redundant video streams over multicast via IP/UDP, there is a need in the art for a method and system to synchronize the received streams and detect stream failure conditions by inspecting the contents of the packets.
As can be seen in FIG. 1, the paths followed by streams 105 and 107 through the distribution network 103 can be different. Hence, each stream will undergo a different delay. Furthermore, there may be packets lost in one stream, but not at the other. Furthermore, the packets may arrive in different order than sent, as each packet may be sent via a different path.
Thus, there is a need in the art for a method and apparatus, e.g., one that can operate in a network edge device, and that can inspect the contents of the packets arriving via streams 105 and 107, and produce a single stream 109.